Adding iso8601 test
authorJeroen van der Heijden <jeroen@transceptor.technology>
Wed, 26 Sep 2018 11:35:07 +0000 (13:35 +0200)
committerJeroen van der Heijden <jeroen@transceptor.technology>
Wed, 26 Sep 2018 11:35:07 +0000 (13:35 +0200)
test/test.sh
test/test_ctree/sources
test/test_ctree/test_ctree.c
test/test_iso8601/sources [new file with mode: 0644]
test/test_iso8601/test_iso8601.c [new file with mode: 0644]

index d38d7ec1e3f1eb7009e86d84a81a8e5512e55cfb..e6629766bceed6a33bb6b6f3697e1921bc8e850d 100755 (executable)
@@ -9,7 +9,7 @@ run () {
     rm "$OUT" 2> /dev/null
 
     gcc -I"../include" -O0 -g3 -Wall -Wextra -Winline -std=gnu99 $SOURCE $C_SRC -o "$OUT"
-    if hash valgrind 2>/dev/null; then
+    if [[ "$NOMEMTEST" -ne "1" ]] && hash valgrind 2>/dev/null; then
         echo -n "(memtest) "
         valgrind --tool=memcheck --error-exitcode=1 --leak-check=full -q ./$OUT
     else
@@ -19,8 +19,12 @@ run () {
     rm "$OUT" 2> /dev/null
 }
 
-for d in test_*/ ; do
-    run "${d%?}"
-done
+if [ $# -eq 0 ]; then
+    for d in test_*/ ; do
+        run "${d%?}"
+    done
+else
+    run "$1"
+fi
 
 exit $RET
\ No newline at end of file
index 049d2b92e0987ef860196c85be06f235bbff86cd..5ca6aa55473417ef2d3e7a24826df086bae1d53f 100755 (executable)
@@ -1,2 +1,2 @@
 ../src/ctree/ctree.c
-../src/logger/logger.c
\ No newline at end of file
+../src/logger/logger.c
index 1c86bdb8f007d11bc07deeedbef3a023bd29ee10..39b6024ae9e1facef909b3e0cccf5a814813e039 100644 (file)
@@ -60,6 +60,25 @@ int main()
         _assert (ct_add(ctree, "", entries[0]) == CT_EXISTS);
     }
 
+    /* test get */
+    {
+        for (unsigned int i = 0; i < num_entries; i++)
+        {
+            _assert (ct_get(ctree, entries[i]) == entries[i]);
+        }
+    }
+
+    /* test getn */
+    {
+        for (unsigned int i = 0; i < num_entries; i++)
+        {
+            _assert (ct_getn(
+                ctree,
+                entries[i],
+                strlen(entries[i])) == entries[i]);
+        }
+    }
+
     /* test pop value */
     {
         for (unsigned int i = 0; i < num_entries; i++)
diff --git a/test/test_iso8601/sources b/test/test_iso8601/sources
new file mode 100644 (file)
index 0000000..c03482b
--- /dev/null
@@ -0,0 +1 @@
+../src/iso8601/iso8601.c
diff --git a/test/test_iso8601/test_iso8601.c b/test/test_iso8601/test_iso8601.c
new file mode 100644 (file)
index 0000000..fb7ccf4
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * test_smap.c
+ *
+ *  Created on: Sep 30, 2017
+ *      Author: Jeroen van der Heijden <jeroen@transceptor.technology>
+ */
+
+
+#include "../test.h"
+#include <iso8601/iso8601.h>
+
+
+int main()
+{
+    test_start("iso8601");
+
+    iso8601_tz_t amsterdam = iso8601_tz("Europe/Amsterdam");
+    _assert(amsterdam > 0);
+
+    iso8601_tz_t utc = iso8601_tz("UTC");
+    _assert(utc > 0);
+
+    /* Some extra time zone test for case sensitivity etc. */
+    _assert(iso8601_tz("NAIVE") == 0);
+    _assert(iso8601_tz("europe/KIEV") > 0);
+    _assert(iso8601_tz("Ams") < 0);
+
+    /* Test parsing a year with time-zone information */
+    printf("%ld", iso8601_parse_date("2013", amsterdam));
+    _assert(iso8601_parse_date("2013", amsterdam) == 1356994800);
+
+    /* Customer offset should be preferred over UTC */
+    _assert(iso8601_parse_date("2013+01", utc) == 1356994800);
+
+    /* UTC should be preferred over given time-zone (Amsterdam) */
+    _assert(iso8601_parse_date("2013Z", amsterdam) == 1356998400);
+
+    /* Test with minute precision */
+    _assert(iso8601_parse_date("2013-02-06T13:01:12", utc) == 1360155672);
+
+    /* Test short written */
+    _assert(iso8601_parse_date("2013-2-6 13:1:12", utc) == 1360155672);
+
+    /* Test summer time */
+    _assert(iso8601_parse_date("2016-04-21", amsterdam) == 1461189600);
+
+    /* Test error */
+    _assert(iso8601_parse_date("2016 04 21", amsterdam) == -1);
+
+    /* Test last day in year */
+    _assert(iso8601_parse_date("2013-12-31", utc) == 1388448000);
+
+    return test_end();
+}